Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Preliminary Feedback #5

Merged
merged 4 commits into from
Feb 21, 2025
Merged

Preliminary Feedback #5

merged 4 commits into from
Feb 21, 2025

Conversation

thePhT
Copy link
Contributor

@thePhT thePhT commented Dec 10, 2024

Hi, here is my first draft of the blogpost.
I would appreciate some feedback on it.
One question: How should images within the markdown be handled, if it is even allowed to include them.

Kind regards,
Philipp

@LittleAprilFool
Copy link
Member

Well received! We will get back to you soon about the feedback.

@LittleAprilFool
Copy link
Member

To the last question -- yes images are welcome!

Copy link
Member

@LittleAprilFool LittleAprilFool left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, I left comments on the initial draft. Look forward to seeing the final version!

@@ -1,11 +1,70 @@
# W6 - Live Programming
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The blog post should introduce the topic of "live programming" before discussing the specific tool, SnipPy. The focus should be on explaining live programming to the reader, with SnipPy presented as an example rather than the main subject.

To improve the structure, consider organizing the post around these key points:

  • What is live programming?
  • What are the state-of-art applications in live programming?
  • What challenges exist in live programming?
  • How does SnipPy address these challenges?
  • What are other challenges or limitations that still remain?
  • What can be a potential direction to solve these challenges?


A promising step in this direction is LEAP, a tool that integrates LLM-based code synthesis with live programming. LEAP generates multiple code completions for a given problem, allowing users to preview the options. Upon selection, LEAP displays the chosen code with corresponding projection boxes based on sample inputs, which visualize the program state. Unlike SnipPy, LEAP primarily uses projection boxes for code verification rather than problem specification. This shift aligns better with the strengths of LLMs, which can reason about prior code context and high-level problem requirements.

In conclusion, SnipPy demonstrates the potential of integrating live programming with programming by example, while its limitations reveal opportunities for more advanced synthesis techniques to enhance developer tools.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The current discussion on program synthesis is solid but lacks depth beyond stating that LLMs can improve synthesis accuracy.
Also, try to reflect the limitation of SnipPy within the context of live programming. Why is liveness particularly valuable in this domain? Could the constant feedback and interactivity become a distraction for programmers, especially in tasks requiring deep focus? A critical reflection on these aspects would provide a more interesting perspective.


Building upon this snippy now integrates programming by example into projection boxes. On a new line of code, the user can provide input/output pairs into a projection box and the tool will try to synthesize a matching expression.

The inner workings of the synthesizer are quite easy to understand. It has an abstract grammar that
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The focus on the synthesizer feels overemphasized and takes attention away from the main topic of live programming.
Perhaps realign the discussion, making the synthesizer a secondary element that enables the design of live programming.

@BILLXZY1215 BILLXZY1215 force-pushed the main branch 2 times, most recently from f0153b8 to e106008 Compare December 28, 2024 12:39
@LittleAprilFool LittleAprilFool merged commit 5f78828 into ETH-PEACH-Lab:main Feb 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants